<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
  /*window.addEventListener('popstate', (ev) => {
    console.log('ev:', ev)
  });*/

  /*
    虽然都会往历史栈中添加记录,但window.location会立即加载,而pushState不会

    history.pushState可以重复添加相同的记录到历史栈
    ,但window.location如果只改变hash,且改变的hash和当前是一样,那么不会重复添加到历史栈
    比如:
  */
  setTimeout(()=>{
    location = '#abc';
    console.log(history.length); //2
    location = '#abc';
    console.log(history.length); //2 ←如果要跳转的hash和当前是一样 不会重复添加

    location = '#ddd';
    console.log(history.length); //3
    location = '#abc';
    console.log(history.length); /** 4 ←会添加 即使之前已经添加过一个相同的url+hash*/
  },500)

</script>
</body>
</html>
